In computer programming, the term directive is applied in a variety of ways that are similar to the term command. It is also used to describe some programming language constructs (e.g. those specifying how a compiler or assembler should process its input).
To distinguish a directive from a command or statement, a directive may involve a pre or post processing command or macro. Its second use involves a statement that affects local or more global options or that applies to a block of programming code but by itself does not perform any action.
This term could be used to refer to proprietary third party tags and commands (or markup) embedded in code or comments that result in additional executable processing that extend the existent compiler, assembler and language constructs present in the development environment.
Contents |
In assembly language, directives generally specify such information as the target platform, mark the separations between sections, and so on. For instance, the commonly seen directive "ALIGN", which inserts in the current section as many bytes as needed to preserve word-alignment, is generally referred to as a "directive", despite the fact that it does correspond to a particular construct in the generated code.
In C and C++, the language supports a simple macro preprocessor. Source lines that should be handled by the preprocessor, such as #define
and #include
are referred to as preprocessor directives.
Another C construct, the #pragma
directive, is used to instruct the compiler to use pragmatic or implementation-dependent features. Two most notable users of this directive are OpenMP and OpenHMPP
Syntactic constructs similar to C's preprocessor directives, such as C#'s #if
, are also typically called "directives", although in these cases there may not be any real preprocessing phase involved.
In Ada, compiler directives are called pragmas (short for "pragmatic information").
In Turbo Pascal, directives are called significant comments, because in the language grammar they follow the same syntax as comments. In Turbo Pascal, a significant comment is a comment whose first character is a dollar sign and whose second character is a letter; for example, the equivalent of C's #include "file"
directive is the significant comment {$I "file"}
.
In Perl, the keyword "use
" can introduce a "pragma", such as use strict;
or use utf8;
. ECMAScript also uses this keyword to introduce "pragmas".
In Visual Basic, the statement "Option Explicit On
" instructs the VB compiler to require all variable declarations before use. There are also a few other variations to the Option
keyword, such as:
Option Strict On
- Requires that implicit type casts are only to wider types.Option Compare Binary
- Tells the compiler to compare text using a binary algorithm.Option Compare Text
- Tells the compiler to compare text using a textual algorithm.